package main

import "fmt"

func main() {
	/**

		指针：
		&vars
	v
		地址
		指针，存储的是另一个变量的内存地址

		pointer ++
		pointer +2

		指针可以指向另一个指针，不推荐

		var pointer1 *int
		*pointer1 = 100

	*/

	intVar1 := 100
	fmt.Printf("intVar1=%d,地址=%v\n", intVar1, &intVar1)

	var pointerVar *int = &intVar1

	fmt.Printf("pointerVar=%v,地址=%v\n", pointerVar, &pointerVar)
	/*
		变量名				变量值			 地址
		intVariables		100				 0xc00006c008
		pointerVariables    0xc00006e008	 0xc00007c020
	*/
	fmt.Println(intVar1)
	*pointerVar = 200
	fmt.Println(intVar1)

	var variables2 = 123
	var pointerVariables2 = &variables2

	fmt.Println(*pointerVariables2, variables2)
	//pointerVariables2 = variables2

	/*
		值类型：整型，浮点型,bool,array,string ,栈中分配
		引用类型：指针，slice,map,chan,interface ，堆中分配
	*/

}
